Using the Crowd to Do Natural Language Programming
نویسندگان
چکیده
Natural language programming has proven to be a very challenging task. We present a novel idea which suggests using crowdsourcing to do natural language programming. Our approach asks non-expert workers to provide input/output examples for a task defined in natural language form. We then use a Programming by Example system to induce the intended program from the input/output examples. Our early results are promising, encouraging further research in this area. 1 Natural Language Programming Deep understanding of natural language sentences is a challenging task. After around half a century work in this area, we don’t know of a single robust deep understanding system except in extremely narrow domains (Liang, Jordan, and Klein 2011). When it comes to describing programming tasks, deep understanding becomes even more challenging, as no vagueness/ambiguity could be tolerated. The challenge is so real that in a decade when there was a lot of optimism about the future of natural language understanding, Dijkstra (1979) called the idea of natural language programming “foolish”. Three decades later, with growth of programming forums, natural language programming has become very popular especially for the novice programmers. Hundreds of post are created every day describing one’s intended task and asking for a piece of code in a specific programming language accomplishing the task. Some companies such as Microsoft hire many programming experts to address the programming needs of the users of their products such as Microsoft Excel (Gulwani 2011), often defined in natural language form (possibly accompanied by one or more examples of the input/output). As a result, natural language programming is becoming a real issue, which needs to be addressed in one way or another. Following the successful deployment of crowdsourcing to replace/help the AI systems, returning answers in nearly real-time (Bigham et al. 2010), we are proposing a novel idea involving crowdsourcing to approach the problem of natural language programming while avoiding deep language understanding. Copyright c © 2012, Association for the Advancement of Artificial Intelligence (www.aaai.org). All rights reserved. 2 Programming by Example In the core of our model lies a Programming by Example (PbE) engine. PbE (a.k.a. Programming by Demonstration or PbD) is one of the most studied topics in the realm of automatic programming (Cypher et al. 1993). The idea of PbE is to provide a system with many examples of input/output of the programming task, and try to induce a program only by looking by analyzing examples. For example, consider the following three input/output examples for a particular task.
منابع مشابه
Guardian: A Crowd-Powered Spoken Dialog System for Web APIs
Natural language dialog is an important and intuitive way for people to access information and services. However, current dialog systems are limited in scope, brittle to the richness of natural language, and expensive to produce. This paper introduces Guardian, a crowdpowered framework that wraps existing Web APIs into immediately usable spoken dialog systems. Guardian takes as input the Web AP...
متن کاملCan the Crowd be Controlled?: A Case Study on Crowd Sourcing and Automatic Validation of Completed Tasks based on User Modeling
Annotation is an essential step in the development cycle of many Natural Language Processing (NLP) systems. Lately, crowdsourcing has been employed to facilitate large scale annotation at a reduced cost. Unfortunately, verifying the quality of the submitted annotations is a daunting task. Existing approaches address this problem either through sampling or redundancy. However, these approaches d...
متن کاملChorus: Letting the Crowd Speak with One Voice
Autonomous systems cannot yet reliably engage in an openended dialogue with users due the complexity of natural language processing, but online crowds present new opportunities to do so. We introduce Chorus, a system enabling real-time two-way natural language conversation between an end user and a single virtual agent powered by a distributed crowd of online humans. Chorus maintains consistent...
متن کاملCombining Non-Expert and Expert Crowd Work to Convert Web APIs to Dialog Systems
Thousands of web APIs expose data and services that would be useful to access with natural dialog, from weather and sports to Twitter and movies. The process of adapting each API to a robust dialog system is difficult and time-consuming, as it requires not only programming but also anticipating what is mostly likely to be asked and how it is likely to be asked. We present a crowd-powered system...
متن کاملActive Learning and Crowd-Sourcing for Machine Translation
In recent years, corpus based approaches to machine translation have become predominant, with Statistical Machine Translation (SMT) being the most actively progressing area. Success of these approaches depends on the availability of parallel corpora. In this paper we propose Active Crowd Translation (ACT), a new paradigm where active learning and crowd-sourcing come together to enable automatic...
متن کامل